// CyTargetLinker,
// a Cytoscape plugin to extend biological networks with regulatory interaction
//
// Copyright 2011-2013 Department of Bioinformatics - BiGCaT, Maastricht University
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//       http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
package cytargetlinker.actions;

import java.awt.event.ActionEvent;
import java.util.Set;

import javax.swing.JOptionPane;

import cytargetlinker.CyTargetLinker;
import cytargetlinker.CyTargetLinkerPlugin;
import cytoscape.CyNetwork;
import cytoscape.Cytoscape;
import cytoscape.util.CytoscapeAction;

/**
 * opens the plugin dialog to load the interaction networks
 */
public class LoadInteractionsAction extends CytoscapeAction {
	
	private CyTargetLinkerPlugin plugin;

	public LoadInteractionsAction(CyTargetLinkerPlugin plugin) {
		this.plugin = plugin;
		super.initialize();
		putValue(NAME, "Load Regulatory Interaction Networks");
		setPreferredMenu("Plugins");
	}
		
	@Override
	public void actionPerformed(ActionEvent arg0) {
		Set<CyNetwork> networks = Cytoscape.getNetworkSet();
		
		/**
		 * at least one network has to be open
		 */
		if (networks != null && networks.size() > 0) {
			CyTargetLinker linker = new CyTargetLinker(plugin);
			linker.openDialog();
		} else {
			JOptionPane.showMessageDialog(Cytoscape.getDesktop(), "No network in current session.", "Warning", JOptionPane.WARNING_MESSAGE);
		}
	}
		
}